import { SHI_SHEN_GUAN_XI, BEN_QI, CANG_GAN, WANG_RUO_GUAN_XI, YANG_GAN_ZHI, MU_ARR, HUO_ARR, TU_ARR, JIN_ARR, SHUI_ARR, ZHANG_SHENG, SHI_ER_ZHANG_SHENG_WANG, TIAN_GAN_GUAN_XI } from "@/constant";





/**
     * 计算生帮克泄耗
     */
//天干
export function ws_tg(day, val) {
    if (!day) {
        return "未知";
    }



    if ("甲乙".indexOf(day) != -1) {
        if ("壬癸".indexOf(val) != -1) {
            return "生";
        }
        if ("甲乙".indexOf(val) != -1) {
            return "帮";
        }
        if ("庚辛".indexOf(val) != -1) {
            return "克";
        }
        if ("丙丁".indexOf(val) != -1) {
            return "泄";
        }
        if ("戊己".indexOf(val) != -1) {
            return "耗";
        }
    } else if("丙丁".indexOf(day) != -1) {
        if ("甲乙".indexOf(val) != -1) {
            return "生";
        }
        if ("丙丁".indexOf(val) != -1) {
            return "帮";
        }
        if ("壬癸".indexOf(val) != -1) {
            return "克";
        }
        if ("戊己".indexOf(val) != -1) {
            return "泄";
        }
        if ("庚辛".indexOf(val) != -1) {
            return "耗";
        }
    } else if("戊己".indexOf(day) != -1) {
        if ("丙丁".indexOf(val) != -1) {
            return "生";
        }
        if ("戊己".indexOf(val) != -1) {
            return "帮";
        }
        if ("甲乙".indexOf(val) != -1) {
            return "克";
        }
        if ("庚辛".indexOf(val) != -1) {
            return "泄";
        }
        if ("壬癸".indexOf(val) != -1) {
            return "耗";
        }
    } else if("庚辛".indexOf(day) != -1) {
        if ("戊己".indexOf(val) != -1) {
            return "生";
        }
        if ("庚辛".indexOf(val) != -1) {
            return "帮";
        }
        if ("丙丁".indexOf(val) != -1) {
            return "克";
        }
        if ("壬癸".indexOf(val) != -1) {
            return "泄";
        }
        if ("甲乙".indexOf(val) != -1) {
            return "耗";
        }
    } else if("壬癸".indexOf(day) != -1) {
        if ("庚辛".indexOf(val) != -1) {
            return "生";
        }
        if ("壬癸".indexOf(val) != -1) {
            return "帮";
        }
        if ("戊己".indexOf(val) != -1) {
            return "克";
        }
        if ("甲乙".indexOf(val) != -1) {
            return "泄";
        }
        if ("丙丁".indexOf(val) != -1) {
            return "耗";
        }
    } else {
        return "未知";
    }

}


/**
 * 12长生 判断日干旺弱
 * @param {*} str 传入12长生状态
 */
export function getWS(riGan, yueZhi) {
    return TIAN_GAN_GUAN_XI[riGan][yueZhi]
}



/**
 * 12长生 旺弱判断
 * @param {*} str 传入12长生状态
 */
export function wangRuo(str) {
    if (SHI_ER_ZHANG_SHENG_WANG.indexOf(str) != -1) {
        return "旺"
    } else {
        return "弱"
    }
}


/**
 * 12长生 长生开始
 * @param {*} tianGan 传入一个天干
 */
export function getZhangSheng(tianGan) {
    return ZHANG_SHENG[tianGan]
}

/**
 * 计算五行个数
 * @param {*} str 传入一个字符，为天干或地支
 * @returns 五行
 */
export function wxNum(arr) {
    let wxArr = []
    arr.forEach(v => {
        wxArr.push(wuXing(v))
    })
    let m = 0;
    let h = 0;
    let t = 0;
    let j = 0;
    let s = 0;


    wxArr.forEach(k => {
        if (k == '木') m += 1
        if (k == '火') h += 1
        if (k == '土') t += 1
        if (k == '金') j += 1
        if (k == '水') s += 1
    })

    return `木=${m}，火=${h}，土=${t}，金=${j}，水=${s}`

}
/**
 * 判断五行
 * @param {*} str 传入一个字符，为天干或地支
 * @returns 五行
 */
export function wuXing(str) {
    if (MU_ARR.indexOf(str) != -1) {
        return "木"
    }
    if (HUO_ARR.indexOf(str) != -1) {
        return "火"
    }
    if (TU_ARR.indexOf(str) != -1) {
        return "土"
    }
    if (JIN_ARR.indexOf(str) != -1) {
        return "金"
    }
    if (SHUI_ARR.indexOf(str) != -1) {
        return "水"
    }
}



/**
 * 判断阴阳
 * @param {*} str 传入一个字符，为天干或地支
 * @returns 阳或者阴
 */
export function isYang(str) {
    if (YANG_GAN_ZHI.indexOf(str) == -1) {
        return "阴"
    } else {
        return "阳"
    }
}

/**
 * 获取十神
 * @param {*} _riGan 日主
 * @param {*} _tianGan 天干
 * @returns 十神
 */
export function getShiShen(_riGan, _tianGan) {
    return SHI_SHEN_GUAN_XI[_riGan][_tianGan]
}

/**
 * 获取十神
 * @param {*} _diZhi 地支
 * @returns 十神
 */
export function getCangGan(_diZhi) {
    return CANG_GAN[_diZhi]
}

/**
 * 获取地支本气
 * @param {*} _diZhi 地支
 * @returns 十神
 */
export function getBenQi(_diZhi) {
    return BEN_QI[_diZhi]
}


/**
 * 获取旺弱
 * @param {*} _tianGan 天干
 * @param {*} _diZhi 地支
 * @returns 十神
 */
export function getWangShuai(_tianGan, _diZhi) {
    return WANG_RUO_GUAN_XI[_tianGan][_diZhi]
}